package day05;
//实现一个方法，参数是int[ ],该方法可以计算出所有数据的平均值并返回
public class Test04 {
    public static double calculateAverage(int[] array) {
        // 防御性编程：处理空数组和null输入
        if (array == null || array.length == 0) {
            throw new IllegalArgumentException("数组不能为空且必须包含元素");
        }

        long sum = 0; // 使用long避免整数溢出
        for (int num : array) {
            sum += num; // 累加所有元素
        }

        // 转换为double确保精度，避免整数截断
        return (double) sum / array.length;
    }

    // 使用示例
    public static void main(String[] args) {
        int[] validData = { 10, 20, 30, 40 };
        int[] emptyArray = {};
        int[] largeNumbers = { Integer.MAX_VALUE, Integer.MAX_VALUE };

        try {
            System.out.println("平均值1：" + calculateAverage(validData)); // 输出25.0
            System.out.println("平均值2：" + calculateAverage(largeNumbers)); // 正确输出2.147483647E9
            System.out.println(calculateAverage(emptyArray)); // 触发异常
        } catch (IllegalArgumentException e) {
            System.err.println("错误：" + e.getMessage());
        }
    }
}
